package com.insurance.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.insurance.enums.ProposalStatusEnum;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 投保单
 * 
 * @date 2020-09-15 14:24:28
 */
@Data
@TableName("tb_proposal")
public class ProposalEntity implements Serializable {

	private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	private static final long serialVersionUID = 1L;

	/**
	 * 投保单主键
	 */
	@TableId
	private String proposalId;

	/**
	 * 投保单号
	 */
	private String proposalNo;

	/**
	 * 保单号
	 */
	private String insuranceNo;

	/**
	 * 产品主键
	 */
	private String productId;

	/**
	 * 产品名称
	 */
	private String productName;

	/**
	 * 方案主键
	 */
	private String caseId;

	/**
	 * 方案名称
	 */
	private String caseName;

	/**
	 * 金额
	 */
	private String totalPrice;

	/**
	 * 保额
	 */
	private String totalInsuranceAmount;

	/**
	 * 费率
	 */
	private BigDecimal rate;

	/**
	 * 起保时间
	 */
	private String startDate;

	/**
	 * 终保时间
	 */
	private String endDate;

	/**
	 * 手机号
	 */
	private String telephone;

	/**
	 * 身份证号
	 */
	private String idCard;

	/**
	 * 投保人id
	 */
	private String applyUserId;

	/**
	 * 投保人类型
	 */
	private String applyType;

	/**
	 * 投保人姓名
	 */
	private String applyUserName;

	/**
	 * 投保人电话号
	 */
	private String applyTelephone;

	/**
	 * 投保人证件类型
	 */
	private String applyCardType;

	/**
	 * 投保人证件号
	 */
	private String applyCardNo;

	/**
	 * 投保人生日
	 */
	private String applyBirthday;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 创建人姓名
	 */
	private String createPersonName;

	/**
	 * 创建人id
	 */
	private String createPersonId;

	/**
	 * 修改时间
	 */
	private Date updateTime;

	/**
	 * 修改人id
	 */
	private String updatePersonId;

	/**
	 * 投保保险公司
	 */
	private String insuranceCompany;

	/**
	 * 承保时间
	 */
	private Date acceptTime;

	/**
	 * 在线保单地址
	 */
	private String onlineUrl;

	/**
	 * 导入excel日志主键
	 */
	private Long excelLogId;

	/**
	 * 来源
	 */
	private String appId;

	/**
	 * 原保单
	 */
	private String originalInsuranceNo;

	/**
	 * 被保险人或物品等
	 */
	private String insuredName;

	/**
	 * 开票状态
	 * 0:未开票  1:已申请  2:已开票  3:开票失败
	 */
	private String invoiceStatus;

	/**
	 * 状态
	 */
	private String state;

	/**
	 * 删除标识位
	 */
	private String deleteFlag;

	@TableField(exist=false)
	private String proposalIdText;

	public String getProposalIdText() {
		return this.proposalId != null ? String.valueOf(this.proposalId) : "";
	}

	public void setProposalIdText(String proposalIdText) {
		this.proposalIdText = proposalIdText;
	}

	@TableField(exist=false)
	private String createTimeText;

	public String getCreateTimeText() {
		return this.createTime != null ? dateFormat.format(this.createTime) : "";
	}

	public void setCreateTimeText(String createTimeText) {
		this.createTimeText = createTimeText;
	}

	@TableField(exist=false)
	private String stateText;

	public String getStateText() {
		return ProposalStatusEnum.getMessage(this.state);
	}

	public void setStateText(String stateText) {
		this.stateText = stateText;
	}

}
